The present invention relates generally to interface devices for allowing humans to interface with computer systems, and more particularly to computer interface devices that allow the user to provide input to computer systems and provide force feedback to the user.
Graphical environments are commonly displayed on computer systems. One visual environment that is particularly common is a graphical user interface (GUI). The user typically moves a displayed, user-controlled graphical object, such as a cursor, across a computer screen and onto other displayed graphical objects or predefined screen regions, and then inputs a command to execute a given selection or operation. The objects or regions (xe2x80x9ctargetsxe2x80x9d) can include, for example, icons, windows, pull-down menus, buttons, and scroll bars. Most GUI""s are currently 2-dimensional as displayed on a computer screen; however, three dimensional (3-D) GUI""s that present simulated 3-D environments on a 2-D screen can also be provided. Other programs or environments that may provide user-controlled graphical objects such as a cursor or a xe2x80x9cviewxe2x80x9d controlled by the user include graphical xe2x80x9cweb pagesxe2x80x9d or other environments offered on the World Wide Web of the Internet, CAD programs, games, virtual reality simulations, etc.
The user interaction with and manipulation of the computer environment is achieved using any of a variety of types of human-computer interface devices that are connected to the computer system controlling the displayed environment. In most systems, the computer updates the environment in response to the user""s manipulation of a user-manipulatable physical object (xe2x80x9cuser objectxe2x80x9d) that is included in the interface device, such as a mouse, joystick, etc.
A computer mouse is a common user object used to interact with a GUI or other graphical environment. A mouse is typically used as a position control device in which displacement of the mouse in a planar workspace (e.g. on a mouse pad) is directly correlated to displacement of the user-controlled graphical object, such as a cursor, displayed on the screen. This displacement correlation may not be a one-to-one correspondence, since the cursor position may be scaled according to a constant mapping from the mouse position e.g., the mouse may be moved a distance of one inch on a mouse pad which causes the controlled cursor to move four inches across the screen. In most cases, small movements of the mouse are scaled to large motions of the cursor on the screen to allow the user to easily point to targets in all areas of the screen. The user can typically change the scaling or xe2x80x9cpointer speedxe2x80x9d of a cursor to a desired level, which is the ratio or scaling factor of cursor movement to mouse movement, using menus provided in the operating system or application program.
Force feedback interface devices, such as force feedback mice, allow a user to experience forces on the manipulated user object based on interactions and events within the displayed graphical environment. Typically, computer-controlled motors or other actuators are used to output forces on the user object in provided degrees of freedom to simulate various sensations, such as an obstruction force when moving the cursor into a wall, a damping force to resist motion of the cursor, and a spring force to bias the cursor to move back toward a starting position of the spring.
The scaled cursor movement in a GUI works well for coarse cursor motion, which is the broad, sweeping motion of the cursor that brings the cursor from one global area on the screen to another. Accuracy of cursor motion is not critical for coarse motion, but speed of the cursor is. For such tasks, it is valuable for the cursor to move a large distance with small motions of the physical mouse. However, a problem occurs when the user wishes to move the cursor a short distance or in small increments (xe2x80x9cfine positioningxe2x80x9d). For tasks in which accurate positioning of the cursor is needed, such as target acquisition tasks, the large scaling of mouse movement to cursor movement is inadequate or even harmful. Certain target acquisition tasks where the targets are very small can be particularly challenging even if the mapping between the cursor and the mouse is reasonable for most other cursor motion activities. For such situations, a scaling that causes large motions of the cursor for small motions of the mouse may make a target acquisition task physically impossible for the user.
Mouse xe2x80x9cballisticsxe2x80x9d or xe2x80x9cballistic trackingxe2x80x9d is typically used to alleviate the scaling problem for fine positioning of the cursor. Ballistics refers to the technique of varying the scaling between motion of a physical mouse and motion of a displayed cursor depending upon the velocity of the mouse in its workspace. The assumption is that if the user is moving the mouse very quickly, the user is likely performing a xe2x80x9ccoarse motionxe2x80x9d task on the screen, and therefore the mouse driver scales small motions of the mouse to large motions of the cursor. Conversely, if the user is moving the mouse very slowly, the user is likely performing a fine positioning task on the screen, and the mouse driver scales small motions of the mouse to small motions of the cursor. Such a variable scaling technique is disclosed in U.S. Pat. No. 4,734,685 of Watanabe and U.S. Pat. No. 5,195,179 of Tokunaga.
Many algorithms can be used for mouse ballistics. The simplest method is to designate a threshold velocity such that if the mouse is moving faster than the threshold velocity, a large scaling of cursor position is made so that small motions of the mouse cause large motions of the cursor; and if the mouse is moving slower than the threshold velocity, a smaller scaling is made so that small motions of the mouse cause small motions of the cursor. A more sophisticated and more common method is to gradually change the scaling in accordance with mouse velocity using several velocity thresholds or a continuous (linear or nonlinear) function. The xe2x80x9cmappingxe2x80x9d of the cursor to the mouse is the method of translating the mouse position in its workspace to a cursor position on the display screen and may involve ballistics or other algorithms and scale factors.
Mouse ballistics and other mappings may cause difficulty in certain fixed-workspace force feedback mouse implementations. Using ballistics, moving the mouse in one direction quickly and then moving it back in the other direction slowly may create a situation where the physical mouse has returned to its starting position but the cursor is positioned far away from its starting position. This illustrates that the frame of the cursor and the frame of the mouse have shifted or become offset. If this offset becomes too large, the user may not be able to reach some parts of the screen within the range of motion of the mouse. In a typical, open-workspace mouse, the offset is corrected through a process called xe2x80x9cindexing.xe2x80x9d Indexing is achieved in a typical mouse by lifting the mouse off the table and repositioning it after the mouse has hit a limit, while the cursor remains fixed in position. This reduces the offset between the mouse and the cursor frames to a smaller, more comfortable offset. However, some types of force feedback mice may have a fixed, limited workspace due to cost and technological constraints and may not be able to be lifted off the table and repositioned. In addition, the mouse hitting a physical limit to its workspace is disconcerting for a user expecting realistic force feedback. Thus, traditional indexing (or its equivalent) may not be practical. However, since ballistics needs indexing to restore the frame offsets, and since ballistics and indexing are both traditional mouse techniques that conflict with typical force feedback functionality, a solution is needed that reconciles both the ballistics and the indexing problem in force feedback interface devices.
The present invention is directed to a force feedback interface which allows enhanced cursor control using fixed-workspace force feedback devices. Various embodiments are presented which compensate for any problems caused by offsets in mouse and cursor movement frames.
An interface device and method for providing enhanced cursor control with force feedback is described. A force feedback interface device includes a manipulandum, such as a mouse, that is moveable in a local, fixed workspace. The device is coupled to a host computer that displays a cursor in a graphical environment, such as a GUI, on a display screen. An interior region and a border region in the local workspace is defined. One mapping of device movement to cursor movement is used for the interior region, and a different mapping is used for the border region. Mapping methods include ballistics, absolute, linear, rate control, and variable absolute methods. The rate control methods can be used for a single axis or for two axes.
In one embodiment, when the mouse moves from the interior region to the border region, the mapping providing the greater cursor velocity is used to decrease any sense of mapping mode change to the user. In a different embodiment, the force feedback device performs auto-centering of the manipulandum in its workspace using the actuators of the device to decrease an offset between the local frame and the screen frame.
The methods and apparatus of the present invention advantageously provides enhanced control over a cursor in a graphical environment for a kinesthetic force feedback mouse with a limited workspace, while not compromising the fidelity or expected feel of force feedback sensations based on motion of the mouse or other user object. The indexing features of the present invention allow the user to control the cursor even when a large offset exists between the mouse and cursor positions in their respective frames, allows the user to reduce this offset, and substantially reduces the user""s undesired experience of any hard, physical stops when the mouse reaches a physical limit in its workspace.
These and other advantages of the present invention will become apparent to those skilled in the art upon a reading of the following specification of the invention and a study of the several figures of the drawing.